package fr.afcepf.atod18.restaurants.web;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ValueChangeEvent;

import fr.afcepf.atod18.restaurants.entity.Horaire;
import fr.afcepf.atod18.restaurants.entity.TypeHoraire;
import fr.afcepf.atod18.restaurants.service.IGestionHoraire;

@ManagedBean
@SessionScoped
public class TypeHoraireMB {
	
	private IGestionHoraire gestionHoraire;
	private TypeHoraire typeHoraire;
	private Integer idTypeCourant =null;
	private List<TypeHoraire> typesHoraire;
	
	public TypeHoraireMB() {
		super();
		typesHoraire=gestionHoraire.listerTypeHoraire();
	}
	public IGestionHoraire getGestionHoraire() {
		return gestionHoraire;
	}
	public void setGestionHoraire(IGestionHoraire gestionHoraire) {
		this.gestionHoraire = gestionHoraire;
	}
	public TypeHoraire getTypeHoraire() {
		return typeHoraire;
	}
	public void setTypeHoraire(TypeHoraire typeHoraire) {
		this.typeHoraire = typeHoraire;
	}
	public Integer getIdTypeCourant() {
		return idTypeCourant;
	}
	public void setIdTypeCourant(Integer idTypeCourant) {
		this.idTypeCourant = idTypeCourant;
	}
	public List<TypeHoraire> getTypesHoraire() {
		return typesHoraire;
	}
	public void setTypesHoraire(List<TypeHoraire> typesHoraire) {
		this.typesHoraire = typesHoraire;
	}
	public void onTypeChange(ValueChangeEvent event){
		idTypeCourant = (Integer) (event.getNewValue());
		if(idTypeCourant!=null && typesHoraire!=null){
			for(TypeHoraire t : this.typesHoraire){
				if(t.getId()==idTypeCourant){
					this.typeHoraire = t;
					break;
				}
			}
		}
	}
	public String doAjoutTypeHoraire(){
		typesHoraire.add(typeHoraire);
		gestionHoraire.ajouterTypeHoraire(typeHoraire);
		return null;
		
	}
	public String doSauveTypeHoraire(){
		gestionHoraire.modifierTypeHoraire(typeHoraire);;
		return null;
		
	}
	public String doSupprimeTypeHoraire(){

		if (! typesHoraire.isEmpty()){
		typesHoraire.remove(typeHoraire);
		gestionHoraire.supprimerTypeHoraire(typeHoraire);
		}
		return null;
		
	}
}
